package com.xiaoshuidi.cloud.module.contract.controller.admin.contract.vo.company;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xiaoshuidi.cloud.framework.common.pojo.PageParam;
import com.xiaoshuidi.cloud.module.contract.util.date.DateUtils;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

import static com.xiaoshuidi.cloud.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;

@Schema(description = "管理后台 - 企业客户分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CompanyContractSonPageReqVO extends PageParam {


    /**
     * 企业合同id
     */
    @Schema(description = "企业合同id")
    private Long companyContractId;
    /**
     * 企业客户id
     */
    @Schema(description = "企业客户id")
    private Long customerCompanyId;

    @Schema(description = "合同开始日时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate startStartTime;

    @Schema(description = "合同开始日结束时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate startEndTime;

    @Schema(description = "合同结束日开始时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate endStartTime;

    @Schema(description = "合同结束日结束时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate endEndTime;

    @Schema(description = "门店id")
    private Long apartmentId;

    @Schema(description = "门店id")
    private Long roomId;

    @Schema(description = "合同类型")
    private String contractSort;
    /**
     * 合同状态的
     * pending 待审批 | noSigned 待签约 | active 已生效 | normalEnd 正常结束 | abnormalEnd 非正常结束
     */
    @Schema(description = "合同状态")
    private String contractStatus;

    @Schema(description = "客户")
    private String customerType;

    @Schema(description = "是否换房")
    private String isExchange;
    /**
     * 合同节点
     * new 新签  | renewal 续约 | rentingOut 退租 | exchange 换房
     */
    @Schema(description = "来源（新签、续租）")
    private String contractNode;

    @Schema(description = "录入开始时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_SECOND)
    @JsonFormat(pattern = DateUtils.FORMAT_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date createStartTime;

    @Schema(description = "录入结束时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_SECOND)
    @JsonFormat(pattern = DateUtils.FORMAT_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date createEndTime;

    @Schema(description = "最后修改开始时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_SECOND)
    @JsonFormat(pattern = DateUtils.FORMAT_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date updateStartTime;

    @Schema(description = "最后修改结束时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_SECOND)
    @JsonFormat(pattern = DateUtils.FORMAT_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date updateEndTime;

    @Schema(description = "根据手机号或者姓名模糊查询")
    private String nameOrPhone;

    /**
     * 管家姓名
     */
    private String butlerName;

    /**
     * 网签备案状态  1未备案  2已备案
     */
    private Integer recordStatus;
}
